package com.oxymore.jbnetapi.wow.character;

import java.util.ArrayList;

import com.google.gson.annotations.SerializedName;
import com.oxymore.jbnetapi.core.ApiResponse;
import com.oxymore.jbnetapi.wow.character.items.CharItems;
import com.oxymore.jbnetapi.wow.character.professions.Professions;
import com.oxymore.jbnetapi.wow.character.progression.Progression;

/**
 * Contains all the informations on a character
 * 
 * @author Valentin
 * 
 */
public class Profile extends ApiResponse
{
	private String realm;
	private String name;
	private int level;
	private long lastModified;
	private String thumbnail;
	private int achievementPoints;
	private int gender;
	private int race;
	@SerializedName("class")
	private int classe;
	private ArrayList<Integer> quests;
	private Stats stats;
	private Guild guild;
	private CharItems items;
	private Professions professions;
	private ArrayList<Integer> companions;
	private Appearance appearance;
	private ArrayList<Integer> mounts;
	private ArrayList<Pet> pets;
	private Progression progression;

	public String getRealm()
	{
		return realm;
	}

	public void setRealm(String realm)
	{
		this.realm = realm;
	}

	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public int getLevel()
	{
		return level;
	}

	public void setLevel(int level)
	{
		this.level = level;
	}

	public long getLastModified()
	{
		return lastModified;
	}

	public void setLastModified(long lastModified)
	{
		this.lastModified = lastModified;
	}

	public String getThumbnail()
	{
		return thumbnail;
	}

	public void setThumbnail(String thumbnail)
	{
		this.thumbnail = thumbnail;
	}

	public int getAchievementPoints()
	{
		return achievementPoints;
	}

	public void setAchievementPoints(int achievementPoints)
	{
		this.achievementPoints = achievementPoints;
	}

	public int getRace()
	{
		return race;
	}

	public void setRace(int race)
	{
		this.race = race;
	}

	public int getClasse()
	{
		return classe;
	}

	public void setClasse(int classe)
	{
		this.classe = classe;
	}

	public ArrayList<Integer> getQuests()
	{
		return quests;
	}

	public void setQuests(ArrayList<Integer> quests)
	{
		this.quests = quests;
	}

	public Stats getStats()
	{
		return stats;
	}

	public void setStats(Stats stats)
	{
		this.stats = stats;
	}

	@Override
	public String toString()
	{
		return "Profile [realm=" + realm + ", name=" + name + ", level="
				+ level + ", lastModified=" + lastModified + ", thumbnail="
				+ thumbnail + ", achievementPoints=" + achievementPoints
				+ ", gender=" + gender + ", race=" + race + ", classe="
				+ classe + ", quests=" + quests + ", stats=" + stats
				+ ", guild=" + guild + ", items=" + items + ", professions="
				+ professions + ", companions=" + companions + ", appearance="
				+ appearance + ", mounts=" + mounts + ", pets=" + pets
				+ ", progression=" + progression + "]";
	}

	public Guild getGuild()
	{
		return guild;
	}

	public void setGuild(Guild guild)
	{
		this.guild = guild;
	}

	public CharItems getItems()
	{
		return items;
	}

	public void setItems(CharItems items)
	{
		this.items = items;
	}

	public Professions getProfessions()
	{
		return professions;
	}

	public void setProfessions(Professions professions)
	{
		this.professions = professions;
	}

	public ArrayList<Integer> getCompanions()
	{
		return companions;
	}

	public void setCompanions(ArrayList<Integer> companions)
	{
		this.companions = companions;
	}

	public Appearance getAppearance()
	{
		return appearance;
	}

	public void setAppearance(Appearance appearance)
	{
		this.appearance = appearance;
	}

	public ArrayList<Integer> getMounts()
	{
		return mounts;
	}

	public void setMounts(ArrayList<Integer> mounts)
	{
		this.mounts = mounts;
	}

	public ArrayList<Pet> getPets()
	{
		return pets;
	}

	public void setPets(ArrayList<Pet> pets)
	{
		this.pets = pets;
	}

	public Progression getProgression()
	{
		return progression;
	}

	public void setProgression(Progression progression)
	{
		this.progression = progression;
	}

	public int getGender()
	{
		return gender;
	}

	public void setGender(int gender)
	{
		this.gender = gender;
	}
}
